Enterprise software systems receive, generate, and store data related to many aspects of a business enterprise. This data may relate to sales, customer relationships, marketing, supplier relationships, inventory, human resources, and/or finances. Users operate reporting tools to access such data and display the data in useful formats, such as graphic visualizations.
Reporting tools may interact with a semantic layer defining a set of business-related abstract entities, referred to herein as business classes. Each business class associates one or more physical entities (e.g., a physical database table, associated columns of one or more database tables, etc.) of one or more data sources with user-friendly names. Business classes may be classified as attributes (or dimensions), along which one may want to perform an analysis or report (e.g., Year, Country, Product), or measures (e.g., Sales, Profit), whose values can be determined for a given combination of attribute values.
The instances of a given business class may appear in one or many stored datasets. For example, a “Customer” class may be associated with an “Issues” table column of a first dataset (received, e.g., from a first data source) and with a “Maintenance Contracts” table column of a second dataset (received, e.g., from a second data source). Upon uploading new datasets, it would be beneficial to efficiently associate existing business classes, which are associated with attributes of previously-uploaded datasets, with corresponding attributes of the new datasets.